using System;
using FaceSharp.Api.Types;

namespace FaceSharp.Api
{
    /// <summary>
    /// IFacebookCore contains stateful information about facebook and settings.
    /// </summary>
    public interface IFacebookCore
    {
        // Settings
        string ApplicationId { get; }
        string ApplicationSecret { get; }
        string ExtendedPermissions { get; }
        string ApplicationUrl { get; }

        // Stateful Information for access
        string Code { get; set; }
        string AccessToken { get; set; }
        DateTime? AccessTokenExpirationDate { get; set; }

        // Information Helpful to have on hand as page loads
        SignedRequest SignedRequest { get; set; }
        Types.User CurrentUser { get; set; }
    }
}